Autogenerated HTML docs for v1.6.2-rc0-90-g0753
diff --git a/RelNotes-1.6.2.txt b/RelNotes-1.6.2.txt index 6ed3159..d3e9583 100644 --- a/RelNotes-1.6.2.txt +++ b/RelNotes-1.6.2.txt
@@ -10,9 +10,17 @@ push running this release will issue a big warning when the configuration variable is missing. Please refer to: + http://git.or.cz/gitwiki/GitFaq#non-bare http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 -for more details on the transition plan. +for more details on the reason why this change is needed and the +transition plan. + +For a similar reason, "git push $there :$killed" to delete the branch +$killed in a remote repository $there, if $killed branch is the current +branch pointed at by its HEAD, gets a large warning. You can choose what +should happen upon such a push by setting the configuration variable +receive.denyDeleteCurrent in the receiving repository. Updates since v1.6.1 @@ -40,8 +48,17 @@ * @{-1} is a way to refer to the last branch you were on. This is accepted not only where an object name is expected, but anywhere - a branch name is expected. E.g. "git branch --track mybranch @{-1}" - "git rev-parse --symbolic-full-name @{-1}". + a branch name is expected and acts as if you typed the branch name. + E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and + "git rev-parse --symbolic-full-name @{-1}" would work as expected. + +* When refs/remotes/origin/HEAD points at a remote tracking branch that + has been pruned away, many git operations issued warning when they + internally enumerated the refs. We now warn only when you say "origin" + to refer to that pruned branch. + +* The location of .mailmap file can be configured, and its file format was + enhanced to allow mapping an incorrect e-mail field as well. * "git add -p" learned 'g'oto action to jump directly to a hunk. @@ -91,6 +108,9 @@ * "git fsck" now checks loose objects in alternate object stores, instead of misreporting them as missing. +* "git gc --prune" was resurrected to allow "git gc --no-prune" and + giving non-default expiration period e.g. "git gc --prune=now". + * "git grep -w" and "git grep" for fixed strings have been optimized. * "git mergetool" learned -y(--no-prompt) option to disable prompting. @@ -102,6 +122,8 @@ "git checkout" switches branches, taking the local changes while switching to another commit. +* "git submodule update" learned --no-fetch option. + * "git tag" learned --contains that works the same way as the same option from "git branch". @@ -140,6 +162,6 @@ -- exec >/var/tmp/1 -O=v1.6.1.3-371-gc19923a +v1.6.2-rc0-89-gf7a2bdb echo O=$(git describe master) git shortlog --no-merges $O..master ^maint
diff --git a/config.txt b/config.txt index 1806a60..f5152c5 100644 --- a/config.txt +++ b/config.txt
@@ -1019,6 +1019,14 @@ Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which normally hide the root commit will now show it. True by default. +mailmap.file:: + The location of an augmenting mailmap file. The default + mailmap, located in the root of the repository, is loaded + first, then the mailmap file pointed to by this variable. + The location of the mailmap file may be in a repository + subdirectory, or somewhere outside of the repository itself. + See linkgit:git-shortlog[1] and linkgit:git-blame[1]. + man.viewer:: Specify the programs that may be used to display help in the 'man' format. See linkgit:git-help[1].
diff --git a/git-blame.html b/git-blame.html index b8b0237..8cc8726 100644 --- a/git-blame.html +++ b/git-blame.html
@@ -744,6 +744,81 @@ </li> </ol></div> </div> +<h2 id="_mapping_authors">MAPPING AUTHORS</h2> +<div class="sectionbody"> +<div class="para"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at +the location pointed to by the mailmap.file configuration option, it +is used to map author and committer names and email addresses to +canonical real names and email addresses.</p></div> +<div class="para"><p>In the simple form, each line in the file consists of the canonical +real name of an author, whitespace, and an email address used in the +commit (enclosed by <em><</em> and <em>></em>) to map to the name. Thus, looks like +this</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>Proper Name <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>The more complex forms are</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt><proper@email.xx> <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>which allows mailmap to replace only the email part of a commit, and</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>Proper Name <proper@email.xx> <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>which allows mailmap to replace both the name and the email of a +commit matching the specified commit email address, and</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>Proper Name <proper@email.xx> Commit Name <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>which allows mailmap to replace both the name and the email of a +commit matching both the specified commit name and email address.</p></div> +<div class="para"><p>Example 1: Your history contains commits by two authors, Jane +and Joe, whose names appear in the repository under several forms:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>Joe Developer <joe@example.com> +Joe R. Developer <joe@example.com> +Jane Doe <jane@example.com> +Jane Doe <jane@laptop.(none)> +Jane D. <jane@desktop.(none)></tt></pre> +</div></div> +<div class="para"><p>Now suppose that Joe wants his middle name initial used, and Jane +prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file +would look like:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@example.com></tt></pre> +</div></div> +<div class="para"><p>Note how we don't need an entry for <jane@laptop.(none)>, because the +real name of that author is correct already.</p></div> +<div class="para"><p>Example 2: Your repository contains commits from the following +authors:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>nick1 <bugs@company.xx> +nick2 <bugs@company.xx> +nick2 <nick2@company.xx> +santa <me@company.xx> +claus <me@company.xx> +CTO <cto@coompany.xx></tt></pre> +</div></div> +<div class="para"><p>Then, you might want a <tt>.mailmap</tt> file looking like:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt><cto@company.xx> <cto@coompany.xx> +Some Dude <some@dude.xx> nick1 <bugs@company.xx> +Other Author <other@author.xx> nick2 <bugs@company.xx> +Other Author <other@author.xx> <nick2@company.xx> +Santa Claus <santa.claus@northpole.xx> <me@company.xx></tt></pre> +</div></div> +<div class="para"><p>Use hash <em>#</em> for comments that are either on their own line, or after +the email address.</p></div> +</div> <h2 id="_see_also">SEE ALSO</h2> <div class="sectionbody"> <div class="para"><p><a href="git-annotate.html">git-annotate(1)</a></p></div> @@ -758,7 +833,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:03 UTC +Last updated 2009-02-15 10:37:52 UTC </div> </div> </body>
diff --git a/git-blame.txt b/git-blame.txt index fba374d..6999cf2 100644 --- a/git-blame.txt +++ b/git-blame.txt
@@ -184,6 +184,12 @@ commit commentary), a blame viewer won't ever care. +MAPPING AUTHORS +--------------- + +include::mailmap.txt[] + + SEE ALSO -------- linkgit:git-annotate[1]
diff --git a/git-config.html b/git-config.html index 3c882da..df9b89b 100644 --- a/git-config.html +++ b/git-config.html
@@ -2407,6 +2407,19 @@ </p> </dd> <dt> +mailmap.file +</dt> +<dd> +<p> + The location of an augmenting mailmap file. The default + mailmap, located in the root of the repository, is loaded + first, then the mailmap file pointed to by this variable. + The location of the mailmap file may be in a repository + subdirectory, or somewhere outside of the repository itself. + See <a href="git-shortlog.html">git-shortlog(1)</a> and <a href="git-blame.html">git-blame(1)</a>. +</p> +</dd> +<dt> man.viewer </dt> <dd> @@ -3071,7 +3084,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:09 UTC +Last updated 2009-02-15 10:37:52 UTC </div> </div> </body>
diff --git a/git-diff-tree.html b/git-diff-tree.html index d519896..f79ae7c 100644 --- a/git-diff-tree.html +++ b/git-diff-tree.html
@@ -1186,7 +1186,7 @@ </li> <li> <p> -<em>%aN</em>: author name (respecting .mailmap) +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -1196,6 +1196,11 @@ </li> <li> <p> +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%ad</em>: author date (format respects --date= option) </p> </li> @@ -1226,7 +1231,7 @@ </li> <li> <p> -<em>%cN</em>: committer name (respecting .mailmap) +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -1236,6 +1241,11 @@ </li> <li> <p> +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%cd</em>: committer date </p> </li> @@ -1931,7 +1941,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:13 UTC +Last updated 2009-02-15 10:37:52 UTC </div> </div> </body>
diff --git a/git-filter-branch.html b/git-filter-branch.html index d24fbe7..6f97af4 100644 --- a/git-filter-branch.html +++ b/git-filter-branch.html
@@ -683,6 +683,66 @@ mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD</tt></pre> </div></div> </div> +<h2 id="_checklist_for_shrinking_a_repository">Checklist for Shrinking a Repository</h2> +<div class="sectionbody"> +<div class="para"><p>git-filter-branch is often used to get rid of a subset of files, +usually with some combination of <tt>--index-filter</tt> and +<tt>--subdirectory-filter</tt>. People expect the resulting repository to +be smaller than the original, but you need a few more steps to +actually make it smaller, because git tries hard not to lose your +objects until you tell it to. First make sure that:</p></div> +<div class="ilist"><ul> +<li> +<p> +You really removed all variants of a filename, if a blob was moved + over its lifetime. <tt>git log --name-only --follow --all -- + filename</tt> can help you find renames. +</p> +</li> +<li> +<p> +You really filtered all refs: use <tt>--tag-name-filter cat -- + --all</tt> when calling git-filter-branch. +</p> +</li> +</ul></div> +<div class="para"><p>Then there are two ways to get a smaller repository. A safer way is +to clone, that keeps your original intact.</p></div> +<div class="ilist"><ul> +<li> +<p> +Clone it with <tt>git clone file:///path/to/repo</tt>. The clone + will not have the removed objects. See <a href="git-clone.html">git-clone(1)</a>. (Note + that cloning with a plain path just hardlinks everything!) +</p> +</li> +</ul></div> +<div class="para"><p>If you really don't want to clone it, for whatever reasons, check the +following points instead (in this order). This is a very destructive +approach, so <strong>make a backup</strong> or go back to cloning it. You have been +warned.</p></div> +<div class="ilist"><ul> +<li> +<p> +Remove the original refs backed up by git-filter-branch: say <tt>git + for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git + update-ref -d</tt>. +</p> +</li> +<li> +<p> +Expire all reflogs with <tt>git reflog expire --expire=now --all</tt>. +</p> +</li> +<li> +<p> +Garbage collect all unreferenced objects with <tt>git gc --prune=now</tt> + (or if your git-gc is not new enough to support arguments to + <tt>--prune</tt>, use <tt>git repack -ad; git prune</tt> instead). +</p> +</li> +</ul></div> +</div> <h2 id="_author">Author</h2> <div class="sectionbody"> <div class="para"><p>Written by Petr "Pasky" Baudis <pasky@suse.cz>, @@ -698,7 +758,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:17 UTC +Last updated 2009-02-15 10:37:53 UTC </div> </div> </body>
diff --git a/git-filter-branch.txt b/git-filter-branch.txt index 1fbbbb4..7ffe03f 100644 --- a/git-filter-branch.txt +++ b/git-filter-branch.txt
@@ -339,6 +339,47 @@ --------------------------------------------------------------- + +Checklist for Shrinking a Repository +------------------------------------ + +git-filter-branch is often used to get rid of a subset of files, +usually with some combination of `\--index-filter` and +`\--subdirectory-filter`. People expect the resulting repository to +be smaller than the original, but you need a few more steps to +actually make it smaller, because git tries hard not to lose your +objects until you tell it to. First make sure that: + +* You really removed all variants of a filename, if a blob was moved + over its lifetime. `git log \--name-only \--follow \--all \-- + filename` can help you find renames. + +* You really filtered all refs: use `\--tag-name-filter cat \-- + \--all` when calling git-filter-branch. + +Then there are two ways to get a smaller repository. A safer way is +to clone, that keeps your original intact. + +* Clone it with `git clone +++file:///path/to/repo+++`. The clone + will not have the removed objects. See linkgit:git-clone[1]. (Note + that cloning with a plain path just hardlinks everything!) + +If you really don't want to clone it, for whatever reasons, check the +following points instead (in this order). This is a very destructive +approach, so *make a backup* or go back to cloning it. You have been +warned. + +* Remove the original refs backed up by git-filter-branch: say `git + for-each-ref \--format="%(refname)" refs/original/ | xargs -n 1 git + update-ref -d`. + +* Expire all reflogs with `git reflog expire \--expire=now \--all`. + +* Garbage collect all unreferenced objects with `git gc \--prune=now` + (or if your git-gc is not new enough to support arguments to + `\--prune`, use `git repack -ad; git prune` instead). + + Author ------ Written by Petr "Pasky" Baudis <pasky@suse.cz>,
diff --git a/git-gc.html b/git-gc.html index 73a0133..e9c2876 100644 --- a/git-gc.html +++ b/git-gc.html
@@ -320,7 +320,7 @@ </div> <h2>SYNOPSIS</h2> <div class="sectionbody"> -<div class="para"><p><em>git gc</em> [--aggressive] [--auto] [--quiet]</p></div> +<div class="para"><p><em>git gc</em> [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]</p></div> </div> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> @@ -378,6 +378,24 @@ automatic consolidation of packs.</p></div> </dd> <dt> +--prune=<date> +</dt> +<dd> +<p> + Prune loose objects older than date (default is 2 weeks ago, + overrideable by the config variable <tt>gc.pruneExpire</tt>). This + option is on by default. +</p> +</dd> +<dt> +--no-prune +</dt> +<dd> +<p> + Do not prune any loose objects. +</p> +</dd> +<dt> --quiet </dt> <dd> @@ -451,7 +469,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:18 UTC +Last updated 2009-02-15 10:37:53 UTC </div> </div> </body>
diff --git a/git-gc.txt b/git-gc.txt index 7086eea..b292e98 100644 --- a/git-gc.txt +++ b/git-gc.txt
@@ -8,7 +8,7 @@ SYNOPSIS -------- -'git gc' [--aggressive] [--auto] [--quiet] +'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] DESCRIPTION ----------- @@ -59,6 +59,14 @@ 'git-repack'. Setting `gc.autopacklimit` to 0 disables automatic consolidation of packs. +--prune=<date>:: + Prune loose objects older than date (default is 2 weeks ago, + overrideable by the config variable `gc.pruneExpire`). This + option is on by default. + +--no-prune:: + Do not prune any loose objects. + --quiet:: Suppress all progress reports.
diff --git a/git-log.html b/git-log.html index 7370ef9..b502fb7 100644 --- a/git-log.html +++ b/git-log.html
@@ -1887,7 +1887,7 @@ </li> <li> <p> -<em>%aN</em>: author name (respecting .mailmap) +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -1897,6 +1897,11 @@ </li> <li> <p> +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%ad</em>: author date (format respects --date= option) </p> </li> @@ -1927,7 +1932,7 @@ </li> <li> <p> -<em>%cN</em>: committer name (respecting .mailmap) +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -1937,6 +1942,11 @@ </li> <li> <p> +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%cd</em>: committer date </p> </li> @@ -2375,7 +2385,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:21 UTC +Last updated 2009-02-15 10:37:54 UTC </div> </div> </body>
diff --git a/git-rev-list.html b/git-rev-list.html index 11eebb2..b3c312e 100644 --- a/git-rev-list.html +++ b/git-rev-list.html
@@ -1450,7 +1450,7 @@ </li> <li> <p> -<em>%aN</em>: author name (respecting .mailmap) +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -1460,6 +1460,11 @@ </li> <li> <p> +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%ad</em>: author date (format respects --date= option) </p> </li> @@ -1490,7 +1495,7 @@ </li> <li> <p> -<em>%cN</em>: committer name (respecting .mailmap) +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -1500,6 +1505,11 @@ </li> <li> <p> +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%cd</em>: committer date </p> </li> @@ -1626,7 +1636,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:33 UTC +Last updated 2009-02-15 10:37:54 UTC </div> </div> </body>
diff --git a/git-shortlog.html b/git-shortlog.html index 2eb7712..832dd1e 100644 --- a/git-shortlog.html +++ b/git-shortlog.html
@@ -392,22 +392,42 @@ </dd> </dl></div> </div> -<h2 id="_files">FILES</h2> +<h2 id="_mapping_authors">MAPPING AUTHORS</h2> <div class="sectionbody"> -<div class="para"><p>If a file <tt>.mailmap</tt> exists at the toplevel of the repository, -it is used to map an author email address to a canonical real name. This -can be used to coalesce together commits by the same person where their -name was spelled differently (whether with the same email address or -not).</p></div> -<div class="para"><p>Each line in the file consists, in this order, of the canonical real name -of an author, whitespace, and an email address (enclosed by <em><</em> and <em>></em>) -to map to the name. Use hash <em>#</em> for comments, either on their own line, -or after the email address.</p></div> -<div class="para"><p>A canonical name may appear in more than one line, associated with -different email addresses, but it doesn't make sense for a given address -to appear more than once (if that happens, a later line overrides the -earlier ones).</p></div> -<div class="para"><p>So, for example, if your history contains commits by two authors, Jane +<div class="para"><p>The <tt>.mailmap</tt> feature is used to coalesce together commits by the same +person in the shortlog, where their name and/or email address was +spelled differently.</p></div> +<div class="para"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at +the location pointed to by the mailmap.file configuration option, it +is used to map author and committer names and email addresses to +canonical real names and email addresses.</p></div> +<div class="para"><p>In the simple form, each line in the file consists of the canonical +real name of an author, whitespace, and an email address used in the +commit (enclosed by <em><</em> and <em>></em>) to map to the name. Thus, looks like +this</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>Proper Name <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>The more complex forms are</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt><proper@email.xx> <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>which allows mailmap to replace only the email part of a commit, and</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>Proper Name <proper@email.xx> <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>which allows mailmap to replace both the name and the email of a +commit matching the specified commit email address, and</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>Proper Name <proper@email.xx> Commit Name <commit@email.xx></tt></pre> +</div></div> +<div class="para"><p>which allows mailmap to replace both the name and the email of a +commit matching both the specified commit name and email address.</p></div> +<div class="para"><p>Example 1: Your history contains commits by two authors, Jane and Joe, whose names appear in the repository under several forms:</p></div> <div class="listingblock"> <div class="content"> @@ -417,15 +437,38 @@ Jane Doe <jane@laptop.(none)> Jane D. <jane@desktop.(none)></tt></pre> </div></div> -<div class="para"><p>Then, supposing Joe wants his middle name initial used, and Jane prefers -her family name fully spelled out, a proper <tt>.mailmap</tt> file would look like:</p></div> +<div class="para"><p>Now suppose that Joe wants his middle name initial used, and Jane +prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file +would look like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt># Note how we don't need an entry for <jane@laptop.(none)>, because the -# real name of that author is correct already, and coalesced directly. -Jane Doe <jane@desktop.(none)> +<pre><tt>Jane Doe <jane@desktop.(none)> Joe R. Developer <joe@example.com></tt></pre> </div></div> +<div class="para"><p>Note how we don't need an entry for <jane@laptop.(none)>, because the +real name of that author is correct already.</p></div> +<div class="para"><p>Example 2: Your repository contains commits from the following +authors:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>nick1 <bugs@company.xx> +nick2 <bugs@company.xx> +nick2 <nick2@company.xx> +santa <me@company.xx> +claus <me@company.xx> +CTO <cto@coompany.xx></tt></pre> +</div></div> +<div class="para"><p>Then, you might want a <tt>.mailmap</tt> file looking like:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt><cto@company.xx> <cto@coompany.xx> +Some Dude <some@dude.xx> nick1 <bugs@company.xx> +Other Author <other@author.xx> nick2 <bugs@company.xx> +Other Author <other@author.xx> <nick2@company.xx> +Santa Claus <santa.claus@northpole.xx> <me@company.xx></tt></pre> +</div></div> +<div class="para"><p>Use hash <em>#</em> for comments that are either on their own line, or after +the email address.</p></div> </div> <h2 id="_author">Author</h2> <div class="sectionbody"> @@ -441,7 +484,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:35 UTC +Last updated 2009-02-15 10:37:55 UTC </div> </div> </body>
diff --git a/git-shortlog.txt b/git-shortlog.txt index 498bd28..42463a9 100644 --- a/git-shortlog.txt +++ b/git-shortlog.txt
@@ -45,45 +45,16 @@ and subsequent lines are indented by `indent2` spaces. `width`, `indent1`, and `indent2` default to 76, 6 and 9 respectively. -FILES ------ -If a file `.mailmap` exists at the toplevel of the repository, -it is used to map an author email address to a canonical real name. This -can be used to coalesce together commits by the same person where their -name was spelled differently (whether with the same email address or -not). +MAPPING AUTHORS +--------------- -Each line in the file consists, in this order, of the canonical real name -of an author, whitespace, and an email address (enclosed by '<' and '>') -to map to the name. Use hash '#' for comments, either on their own line, -or after the email address. +The `.mailmap` feature is used to coalesce together commits by the same +person in the shortlog, where their name and/or email address was +spelled differently. -A canonical name may appear in more than one line, associated with -different email addresses, but it doesn't make sense for a given address -to appear more than once (if that happens, a later line overrides the -earlier ones). +include::mailmap.txt[] -So, for example, if your history contains commits by two authors, Jane -and Joe, whose names appear in the repository under several forms: - ------------- -Joe Developer <joe@example.com> -Joe R. Developer <joe@example.com> -Jane Doe <jane@example.com> -Jane Doe <jane@laptop.(none)> -Jane D. <jane@desktop.(none)> ------------- - -Then, supposing Joe wants his middle name initial used, and Jane prefers -her family name fully spelled out, a proper `.mailmap` file would look like: - ------------- -# Note how we don't need an entry for <jane@laptop.(none)>, because the -# real name of that author is correct already, and coalesced directly. -Jane Doe <jane@desktop.(none)> -Joe R. Developer <joe@example.com> ------------- Author ------
diff --git a/git-show.html b/git-show.html index f795548..7da832d 100644 --- a/git-show.html +++ b/git-show.html
@@ -567,7 +567,7 @@ </li> <li> <p> -<em>%aN</em>: author name (respecting .mailmap) +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -577,6 +577,11 @@ </li> <li> <p> +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%ad</em>: author date (format respects --date= option) </p> </li> @@ -607,7 +612,7 @@ </li> <li> <p> -<em>%cN</em>: committer name (respecting .mailmap) +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -617,6 +622,11 @@ </li> <li> <p> +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%cd</em>: committer date </p> </li> @@ -860,7 +870,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:37 UTC +Last updated 2009-02-15 10:37:55 UTC </div> </div> </body>
diff --git a/git-submodule.html b/git-submodule.html index eab861e..dbfcce8 100644 --- a/git-submodule.html +++ b/git-submodule.html
@@ -324,7 +324,7 @@ <div class="content"><em>git submodule</em> [--quiet] add [-b branch] [--] <repository> <path> <em>git submodule</em> [--quiet] status [--cached] [--] [<path>…] <em>git submodule</em> [--quiet] init [--] [<path>…] -<em>git submodule</em> [--quiet] update [--init] [--] [<path>…] +<em>git submodule</em> [--quiet] update [--init] [-N|--no-fetch] [--] [<path>…] <em>git submodule</em> [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>…] <em>git submodule</em> [--quiet] foreach <command> <em>git submodule</em> [--quiet] sync [--] [<path>…]</div></div> @@ -538,6 +538,18 @@ </p> </dd> <dt> +-N +</dt> +<dt> +--no-fetch +</dt> +<dd> +<p> + This option is only valid for the update command. + Don't fetch new objects from the remote site. +</p> +</dd> +<dt> <path>… </dt> <dd> @@ -567,7 +579,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:38 UTC +Last updated 2009-02-15 10:37:55 UTC </div> </div> </body>
diff --git a/git-submodule.txt b/git-submodule.txt index 2f207fb..3b8df44 100644 --- a/git-submodule.txt +++ b/git-submodule.txt
@@ -12,7 +12,7 @@ 'git submodule' [--quiet] add [-b branch] [--] <repository> <path> 'git submodule' [--quiet] status [--cached] [--] [<path>...] 'git submodule' [--quiet] init [--] [<path>...] -'git submodule' [--quiet] update [--init] [--] [<path>...] +'git submodule' [--quiet] update [--init] [-N|--no-fetch] [--] [<path>...] 'git submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...] 'git submodule' [--quiet] foreach <command> 'git submodule' [--quiet] sync [--] [<path>...] @@ -172,6 +172,11 @@ (the default). This limit only applies to modified submodules. The size is always limited to 1 for added/deleted/typechanged submodules. +-N:: +--no-fetch:: + This option is only valid for the update command. + Don't fetch new objects from the remote site. + <path>...:: Paths to submodule(s). When specified this will restrict the command to only operate on the submodules found at the specified paths.
diff --git a/git-whatchanged.html b/git-whatchanged.html index 791b890..af12e71 100644 --- a/git-whatchanged.html +++ b/git-whatchanged.html
@@ -599,7 +599,7 @@ </li> <li> <p> -<em>%aN</em>: author name (respecting .mailmap) +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -609,6 +609,11 @@ </li> <li> <p> +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%ad</em>: author date (format respects --date= option) </p> </li> @@ -639,7 +644,7 @@ </li> <li> <p> -<em>%cN</em>: committer name (respecting .mailmap) +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) </p> </li> <li> @@ -649,6 +654,11 @@ </li> <li> <p> +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>) +</p> +</li> +<li> +<p> <em>%cd</em>: committer date </p> </li> @@ -799,7 +809,7 @@ </div> <div id="footer"> <div id="footer-text"> -Last updated 2009-02-14 08:18:42 UTC +Last updated 2009-02-15 10:37:55 UTC </div> </div> </body>
diff --git a/mailmap.txt b/mailmap.txt new file mode 100644 index 0000000..e25b154 --- /dev/null +++ b/mailmap.txt
@@ -0,0 +1,75 @@ +If the file `.mailmap` exists at the toplevel of the repository, or at +the location pointed to by the mailmap.file configuration option, it +is used to map author and committer names and email addresses to +canonical real names and email addresses. + +In the simple form, each line in the file consists of the canonical +real name of an author, whitespace, and an email address used in the +commit (enclosed by '<' and '>') to map to the name. Thus, looks like +this +-- + Proper Name <commit@email.xx> +-- + +The more complex forms are +-- + <proper@email.xx> <commit@email.xx> +-- +which allows mailmap to replace only the email part of a commit, and +-- + Proper Name <proper@email.xx> <commit@email.xx> +-- +which allows mailmap to replace both the name and the email of a +commit matching the specified commit email address, and +-- + Proper Name <proper@email.xx> Commit Name <commit@email.xx> +-- +which allows mailmap to replace both the name and the email of a +commit matching both the specified commit name and email address. + +Example 1: Your history contains commits by two authors, Jane +and Joe, whose names appear in the repository under several forms: + +------------ +Joe Developer <joe@example.com> +Joe R. Developer <joe@example.com> +Jane Doe <jane@example.com> +Jane Doe <jane@laptop.(none)> +Jane D. <jane@desktop.(none)> +------------ + +Now suppose that Joe wants his middle name initial used, and Jane +prefers her family name fully spelled out. A proper `.mailmap` file +would look like: + +------------ +Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@example.com> +------------ + +Note how we don't need an entry for <jane@laptop.(none)>, because the +real name of that author is correct already. + +Example 2: Your repository contains commits from the following +authors: + +------------ +nick1 <bugs@company.xx> +nick2 <bugs@company.xx> +nick2 <nick2@company.xx> +santa <me@company.xx> +claus <me@company.xx> +CTO <cto@coompany.xx> +------------ + +Then, you might want a `.mailmap` file looking like: +------------ +<cto@company.xx> <cto@coompany.xx> +Some Dude <some@dude.xx> nick1 <bugs@company.xx> +Other Author <other@author.xx> nick2 <bugs@company.xx> +Other Author <other@author.xx> <nick2@company.xx> +Santa Claus <santa.claus@northpole.xx> <me@company.xx> +------------ + +Use hash '#' for comments that are either on their own line, or after +the email address. \ No newline at end of file
diff --git a/pretty-formats.txt b/pretty-formats.txt index 3d87d3e..159390c 100644 --- a/pretty-formats.txt +++ b/pretty-formats.txt
@@ -101,16 +101,18 @@ - '%P': parent hashes - '%p': abbreviated parent hashes - '%an': author name -- '%aN': author name (respecting .mailmap) +- '%aN': author name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ae': author email +- '%aE': author email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ad': author date (format respects --date= option) - '%aD': author date, RFC2822 style - '%ar': author date, relative - '%at': author date, UNIX timestamp - '%ai': author date, ISO 8601 format - '%cn': committer name -- '%cN': committer name (respecting .mailmap) +- '%cN': committer name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ce': committer email +- '%cE': committer email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%cd': committer date - '%cD': committer date, RFC2822 style - '%cr': committer date, relative